var read_line = require('readline-sync')
read_line.setDefaultOptions({ prompt: '' })
var read_line = read_line.prompt
let str = read_line() // 读取字符串
// 可以用动态规划来做
let n = str.length // 获得这个的长度
let dp = new Array(n).fill(0).map(() => new Array(n).fill(0)) // 生成一个二维数组
for (let i = 0; i < n; i++) {
  dp[i][i] = 1 // 相同的位置值需要打印一次就行了
}
for (let i = 1; i < str.length; i++) {
  for (let j = 0; j + i < str.length; j++) {
    let q = j + i
    if (str[j] === str[q]) {
      dp[j][q] = dp[j][q - 1]
    } else {
      let min = Infinity
      for (let k = j; k < q; k++) {
        min = Math.min(min, dp[j][k] + dp[k + 1][q])
      }
      dp[j][q] = min
    }
  }
}
console.log(dp[0][n - 1])
